package com.majorty.manage_cms.service;

import com.majorty.framework.domain.cms.CmsConfig;
import com.majorty.framework.domain.cms.CmsPage;
import com.majorty.framework.domain.cms.CmsSite;
import com.majorty.framework.domain.cms.request.QueryPageRequest;
import com.majorty.framework.domain.cms.response.CmsPageResult;
import com.majorty.framework.domain.cms.response.CmsPostPageResult;
import com.majorty.framework.model.response.QueryResponseResult;
import com.majorty.framework.model.response.ResponseResult;

/**
 * @author zhangshuai
 * @version 1.0
 * @date 2019-08-27 22:56
 **/

public interface PageService {



    /**
     * 页面查询方法
     * @param page 页码，从1开始记数
     * @param size 每页记录数
     * @param queryPageRequest 查询条件
     * @return
     */
     QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);


    /**
     * 新增页面
     * @param cmsPage
     * @return
     */
     CmsPageResult add(CmsPage cmsPage) ;

    /**
     * 根据页面id查询页面
     * @param id
     * @return
     */
     CmsPage getById(String id);

    /**
     * 修改页面
     * @param id
     * @param cmsPage
     * @return
     */
     CmsPageResult update(String id,CmsPage cmsPage);

    /**
     * 根据id删除页面
     * @param id
     * @return
     */
     ResponseResult delete(String id);

    /**
     * 根据id查询cmsConfig
     * @param id
     * @return
     */
     CmsConfig getConfigById(String id);


    //页面静态化方法
    /**
     * 静态化程序获取页面的DataUrl
     *
     * 静态化程序远程请求DataUrl获取数据模型。
     *
     * 静态化程序获取页面的模板信息
     *
     * 执行页面静态化
     */
     String getPageHtml(String pageId);


    /**
     * 页面发布
     * @param pageId
     * @return
     */
     ResponseResult post(String pageId);


    /**
     * 保存页面，有则更新，没有则添加
     * @param cmsPage
     * @return
     */
     CmsPageResult save(CmsPage cmsPage) ;

    /**
     * 一键发布页面
     * @param cmsPage
     * @return
     */
     CmsPostPageResult postPageQuick(CmsPage cmsPage) ;

    /**
     * 根据站点id查询站点信息
     * @param siteId
     * @return
     */
     CmsSite findCmsSiteById(String siteId);
}
